/* app_matrix_data.h */
#ifndef __APP_MATRIX_DATA_H__
#define __APP_MATRIX_DATA_H__

#include "arm_math.h"

/*******************************************************************************
 * Definitions
 ******************************************************************************/
/* 输入采样队列的总长度. */

#define MATRIX_INPUT_M1_COLS   4
#define MATRIX_INPUT_M1_ROWS   5
#define MATRIX_INPUT_M3_COLS   6
#define MATRIX_INPUT_M4_COLS   9

#define MATRIX_OUTPUT_M_COLS   9

#define VECTOR_INPUT_ITEMS     (MATRIX_INPUT_M1_COLS *MATRIX_INPUT_M1_ROWS)

#define MATH_PI 3.1415926535898f

#define PQ_PRIVATE_RAM_BASE              0xE0000000
#define PQ_MATRIX_INV_PRIVATE_RAM_BASE   (PQ_PRIVATE_RAM_BASE+0x2000)

extern float32_t matrix_input_M1_data_f32[MATRIX_INPUT_M1_ROWS*MATRIX_INPUT_M1_COLS];
extern float32_t matrix_input_M2_data_f32[MATRIX_INPUT_M1_ROWS*MATRIX_INPUT_M1_COLS];
extern float32_t matrix_input_M3_data_f32[MATRIX_INPUT_M1_COLS*MATRIX_INPUT_M3_COLS];
extern float32_t matrix_input_M4_data_f32[MATRIX_INPUT_M4_COLS*MATRIX_INPUT_M4_COLS];

extern float32_t matrix_output_M_data_f32[MATRIX_OUTPUT_M_COLS*MATRIX_OUTPUT_M_COLS];

extern arm_matrix_instance_f32 arm_matrix_input_M1_f32;
extern arm_matrix_instance_f32 arm_matrix_input_M2_f32;
extern arm_matrix_instance_f32 arm_matrix_input_M3_f32;
extern arm_matrix_instance_f32 arm_matrix_input_M4_f32;

extern arm_matrix_instance_f32 arm_matrix_output_M_f32;

extern float32_t vector_window_weights_data_f32[VECTOR_INPUT_ITEMS];

extern uint32_t matrix_inv_temp[1024];

#endif /* __APP_FIR_DATA_H__ */

